using System;
using System.Collections.Generic;
namespace ServiceStack
{
	public class MetadataTypesConfig
	{
		public string BaseUrl
		{
			get;
			set;
		}
		public bool MakePartial
		{
			get;
			set;
		}
		public bool MakeVirtual
		{
			get;
			set;
		}
		public string BaseClass
		{
			get;
			set;
		}
		public string Package
		{
			get;
			set;
		}
		public bool AddReturnMarker
		{
			get;
			set;
		}
		public bool AddDescriptionAsComments
		{
			get;
			set;
		}
		public bool AddDataContractAttributes
		{
			get;
			set;
		}
		public bool AddIndexesToDataMembers
		{
			get;
			set;
		}
		public bool AddGeneratedCodeAttributes
		{
			get;
			set;
		}
		public int? AddImplicitVersion
		{
			get;
			set;
		}
		public bool AddResponseStatus
		{
			get;
			set;
		}
		public bool AddServiceStackTypes
		{
			get;
			set;
		}
		public bool AddModelExtensions
		{
			get;
			set;
		}
		public bool AddPropertyAccessors
		{
			get;
			set;
		}
		public bool ExcludeGenericBaseTypes
		{
			get;
			set;
		}
		public bool SettersReturnThis
		{
			get;
			set;
		}
		public bool MakePropertiesOptional
		{
			get;
			set;
		}
		public bool ExportAsTypes
		{
			get;
			set;
		}
		public string AddDefaultXmlNamespace
		{
			get;
			set;
		}
		public bool MakeDataContractsExtensible
		{
			get;
			set;
		}
		public bool InitializeCollections
		{
			get;
			set;
		}
		public List<string> DefaultNamespaces
		{
			get;
			set;
		}
		public List<string> DefaultImports
		{
			get;
			set;
		}
		public List<string> IncludeTypes
		{
			get;
			set;
		}
		public List<string> ExcludeTypes
		{
			get;
			set;
		}
		public List<string> TreatTypesAsStrings
		{
			get;
			set;
		}
		public string GlobalNamespace
		{
			get;
			set;
		}
		public HashSet<Type> IgnoreTypes
		{
			get;
			set;
		}
		public HashSet<Type> ExportTypes
		{
			get;
			set;
		}
		public HashSet<Type> ExportAttributes
		{
			get;
			set;
		}
		public List<string> IgnoreTypesInNamespaces
		{
			get;
			set;
		}
		public MetadataTypesConfig(string baseUrl = null, bool makePartial = true, bool makeVirtual = true, bool addReturnMarker = true, bool convertDescriptionToComments = true, bool addDataContractAttributes = false, bool addIndexesToDataMembers = false, bool addGeneratedCodeAttributes = false, string addDefaultXmlNamespace = null, string baseClass = null, string package = null, bool addResponseStatus = false, bool addServiceStackTypes = true, bool addModelExtensions = true, bool addPropertyAccessors = true, bool excludeGenericBaseTypes = true, bool settersReturnThis = true, bool makePropertiesOptional = true, bool makeDataContractsExtensible = false, bool initializeCollections = true, int? addImplicitVersion = null)
		{
			this.BaseUrl = baseUrl;
			this.MakePartial = makePartial;
			this.MakeVirtual = makeVirtual;
			this.AddReturnMarker = addReturnMarker;
			this.AddDescriptionAsComments = convertDescriptionToComments;
			this.AddDataContractAttributes = addDataContractAttributes;
			this.AddDefaultXmlNamespace = addDefaultXmlNamespace;
			this.BaseClass = baseClass;
			this.Package = package;
			this.MakeDataContractsExtensible = makeDataContractsExtensible;
			this.AddIndexesToDataMembers = addIndexesToDataMembers;
			this.AddGeneratedCodeAttributes = addGeneratedCodeAttributes;
			this.InitializeCollections = initializeCollections;
			this.AddResponseStatus = addResponseStatus;
			this.AddServiceStackTypes = addServiceStackTypes;
			this.AddModelExtensions = addModelExtensions;
			this.AddPropertyAccessors = addPropertyAccessors;
			this.ExcludeGenericBaseTypes = excludeGenericBaseTypes;
			this.SettersReturnThis = settersReturnThis;
			this.MakePropertiesOptional = makePropertiesOptional;
			this.AddImplicitVersion = addImplicitVersion;
		}
	}
}
